home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 32 / CD Expert nº 32.iso / Army Men TiS / data1.cab / Required_Files / rules / death_ai.txt < prev    next >
Text File  |  1999-10-08  |  3KB  |  83 lines

  1. // @1 = color to do AI for, @2 = color of enemy, @3 = value for @1Action variable
  2. macro death_ai_enemy 3
  3. {
  4.     // these events setup the @1Action variable
  5.  
  6.     // before attacking @2 make sure @2 is in the game and is not an ally
  7.     if @1SetAttack@2 testvar IsColorInGame @2 > 0 and IsAlly @1 @2 = 0 then
  8.         setvar @1Action @3,
  9.         trigger @1Attack@2,
  10.         trigger @1StartTimeOut
  11.  
  12.     // these events do the actual attack orders
  13.  
  14.     if @1Attack@2 testvar @1Action = @3 then
  15.         order @1sarge1 follow @2sarge1 inmode attack,
  16.         order @1 group 1 follow @1sarge1 inmode defend,
  17.         order @1 group 2 follow @2sarge1 inmode attack,
  18.         order @1 group 3 follow @2sarge1 inmode attack,
  19.         order @1 group 4 follow @2sarge1 inmode attack,
  20.         order @1 group 5 follow @2sarge1 inmode attack,
  21.         triggerdelay 500 @1Attack@2
  22. }
  23.  
  24. // @1 = color of army to do AI for, @2-@4 = other colors
  25. macro death_ai_macro 4
  26. {
  27.     // This variable holds the current action for @1
  28.     // 0 means no action, 1 means attack @2, 2 means attack @3, 3 means attack @4
  29.     variable @1Action 0
  30.  
  31.     // this variable is 
  32.     // this gets loaded on the host if the @1 army is AI controlled
  33.     if startup1 then
  34.         triggerdelay 1000 @1ChooseNewAction,
  35.         triggerdelay 2000 @1RegularOrders
  36.  
  37.     if @1ChooseNewAction then
  38.         setvar @1Action 0,
  39.         trigger @1ChooseAction
  40.  
  41.     // if @1 has no current action then pick a random action
  42.     // keep doing this until an action is set
  43.     if @1ChooseAction testvar @1Action = 0 then
  44.         trigger @1PickRandomAction,
  45.         triggerdelay 1000 @1ChooseAction
  46.  
  47.     if @1PickRandomAction then random
  48.         trigger @1SetAttack@2,
  49.         trigger @1SetAttack@3,
  50.         trigger @1SetAttack@4
  51.  
  52.     expand death_ai_enemy ( @1 @2 1 )
  53.     expand death_ai_enemy ( @1 @3 2 )
  54.     expand death_ai_enemy ( @1 @4 3 )
  55.     // these events choose new actions if a sarge is killed
  56.  
  57.     if killed sarge by @1 then
  58.         triggerdelay 5000 @1ChooseNewAction
  59.  
  60.     if killed @1sarge1 then
  61.         triggerdelay 5000 @1ChooseNewAction
  62.  
  63.     // these are the standing order regardless of what mode sarge is in
  64.         
  65.     if @1RegularOrders then
  66.         order @1 group 7 goto @1base inmode defend,
  67.         triggerdelay 5000 @1RegularOrders
  68.  
  69.     // timeout code - if mode has not changed for a while then change it
  70.  
  71.     variable @1TimeOutVar 0
  72.     variable @1LastTimeOutVar 1
  73.  
  74.     if @1StartTimeOut then
  75.         addvar @1TimeOutVar 1,
  76.         triggerdelay 120000 @1CheckTimeOut
  77.  
  78.     if @1CheckTimeOut testvar @1TimeOutVar = @1LastTimeOutVar then
  79.         trigger @1ChooseNewAction
  80.  
  81.     if @1CheckTimeOut testvar @1TimeOutVar <> @1LastTimeOutVar then
  82.         addvar @1LastTimeOutVar 1
  83. }